package com.cwh.taskcenter.mq;

/**
 * @author cwh
 * 消息生产者接口
 */
public interface MessageProducer {

    /**
     * 发送消息到指定主题
     * @param topic 主题名称
     * @param key 消息键（用于分区）
     * @param message 消息内容
     * @return 发送是否成功
     */
    boolean send(String topic, String key, Object message);

    /**
     * 发送消息到指定主题（异步）
     * @param topic 主题名称
     * @param key 消息键（用于分区）
     * @param message 消息内容
     * @param callback 回调函数
     */
    void sendAsync(String topic, String key, Object message, SendCallback callback);


    /**
     * 发送回调接口
     */
    interface SendCallback {
        void onSuccess();
        void onFailure(Throwable ex);
    }

}
